
package main

import (
	"reflect"
	"fmt"
	"strconv"
)
func main()  {
	str  :="黎sir Love China"
	// golang处理非ascii码的困难
	str2 :=str[1:3]
	fmt.Println(str[0])
	// 字符串不可变，也即意味着中间字符无法赋值
	// str2[0] = uint8(32)
	fmt.Println(str2)
	fmt.Println(reflect.TypeOf(str2))
}

func main2()  {
	// golang语言，字符串的奇怪方法使用方法
	str:=" 32jf l黎ksjlfjf"
	str2:=""
	str2 +="23223"
	strconv.Atoi(str2)
	strconv.Itoa(12)
	// int32
	// str2[0] ='I'
	// str2 =nil,not nil
	
	// the byte count
	// uint8 
	fmt.Println(len(str),reflect.TypeOf(str2[0]))
    fmt.Println(len([]rune(str)))

	for id,val :=range []rune(str){
		// blank president 
		if  val== rune(' '){
			fmt.Println("there is a blank")
			fmt.Println(id)
		}
	}
	str_run := []rune(str)
	// 重新开辟一个空间
	rune_tr := make([]rune,0)
	for id,val :=range str_run{
		if val == rune(' '){
			rune_tr =append(rune_tr,[]rune("%20")...)
		}else{
			rune_tr =append(rune_tr,str_run[id:id+1]...)
		}
	}


	fmt.Println(string(rune_tr))


}